﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace BinaryCode
{
    public interface IBaseInterpreter
    {
        /// <summary>
        /// 
        /// </summary>
        /// <remarks>If not set use Console.Error</remarks>
        /// <param name="output">TextWriter, like Console.out</param>
        void SetVerboseOutput(TextWriter output);
        /// <summary>
        /// 
        /// </summary>
        /// <remarks>If not set user Console.out</remarks>
        /// <param name="output">TextWriter, like Console.Out</param>
        void SetDefaultOutput(TextWriter output);
        /// <summary>
        /// 
        /// </summary>
        /// <remarks>If not set use Console.In</remarks>
        /// <param name="input">TextReader, like Console.In</param>
        void SetDefaultInput(TextReader input);

        bool ParseCode(string code);
        void RunCode();
        
    }
}
